#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QGraphicsView>
#include <QGraphicsItem>
#include <QGraphicsScene>
#include "bird.h"
#include "edge.h"
#include "barrier.h"
#include <QDebug>
#include <QSettings>
namespace Ui {
class Widget;
}

class Widget : public QGraphicsView
{
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = 0);
    ~Widget();
    void showButton();// 显示开始和重新开始按钮
    void hideButton();// 隐藏开始和重新开始按钮
private:
    Ui::Widget *ui;
    QGraphicsScene *m_scene;
    Bird *m_bird;
    Edge *m_edge_1;
    Edge *m_edge_2;
    Barrier *m_barr[BARRIER_NUM];
    QTimer *m_timer;
    int num;
    QTimer *ScoringTimer;
    int score;
    QSettings *settings;
protected:
    void mousePressEvent ( QMouseEvent * event );// 重写基类中的 mousePressEvent 函数，处理鼠标点击事件

private slots:
    void initBarrier();// 初始化障碍物
    void beginBarrier();// 开始运行障碍物
    void onBirdDied();// 处理小鸟死亡事件
    void on_pushButton_clicked();// 点击开始按钮的槽函数
    void Scoring();// 计分
    void delayBegin();// 延迟开始
    void on_pushButton_2_clicked();// 点击重新开始按钮
};

#endif // WIDGET_H
